package com.party.orders.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.party.domain.Coupon;
import com.party.dto.Response;
import com.party.orders.service.CouponService;

/**
 * 
 * @author Caizhf
 * @date 2017年7月28日下午4:17:09
 * @version v.0.1
 * @email 1115054416@qq.com 
 *
 * <p>Description: 优惠券控制器</p>
 *
 */
@RestController
@RequestMapping("/coup")
public class CouponController {
	
	@Autowired
	private CouponService service;
	
	/**
	 * 功能：增加
	 * /coup/add?cName=*&productType=*&amountNeed=*&favourablePrice=*
	 * 					&rule=*&cNumber=*&startTime=*&endTime=*
	 * 
	 * 注意：各字段含义请参考Coupon对象注释
	 * @param coupon
	 * @return
	 */
	@RequestMapping("/add")
	public Response save(Coupon coupon){
		service.save(coupon);
		return Response.success();
	}
	
	
	/**
	 *	功能：删除
	 * /coup/del/*
	 * @param cpid
	 * @return
	 */
	@RequestMapping("/del/{cpid}")
	public Response delete(@PathVariable int cpid){
		service.deleteById(cpid);
		return Response.success();
	}
	
	/**
	 * 功能：修改
	 * 传参方式与save类似
	 * @param coupon
	 * @return
	 */
	@RequestMapping("/update")
	public Response update(Coupon coupon){
		service.update(coupon);
		return Response.success();
	}
	
	
	/**
	 * 功能：查单个详细
	 * 
	 * /coup/get/*
	 * @param cpid
	 * @return
	 */
	@RequestMapping("/get/{cpid}")
	public Response get(@PathVariable int cpid){
		return Response.success(service.findById(cpid));
	}

	
	/**
	 * 功能：查询列表、模糊查询、按过期与否查询、可根据用户id查询
	 * 
	 * /coup/list/*?pageSize=*&key=* 
	 * 查所有或者模糊查询、根据用户id查询他所拥有的优惠券
	 * 
	 * @param pageSize
	 * @param pageNum
	 * @param key 可为空，如果不为空就是模糊查询
	 * @param userId 可为空，如果不为空就是根据某个用户id查询所拥有的优惠券
	 * @param isOverdue 可为空，如果不为空功能是查询过期的或者不过期的,true为查询过期
	 * @return
	 */
	@RequestMapping("/list/{pageNum}")
	public Response list(@RequestParam("pageSize")int pageSize,@PathVariable int pageNum,String key,Integer userId,Boolean isOverdue){
		return Response.success(service.list(pageNum,pageSize,key,userId,isOverdue));
	}
	
	
}
